1. Field of the Invention
This invention relates generally to computer software programs and architectures, and relates more particularly to a system and method for using a substitute directory to automatically install an update program.
2. Description of the Background Art
Developing and utilizing an effective method for installing computer software programs is a significant consideration for administrators and users of contemporary computer systems. Computer software programs typically include a series of instructions that control the operation and functionality of computer systems. In general, computer software continues to evolve in response to factors like improved hardware capabilities and increased functional demands. As computer software evolves, new programs often become available to system users, and already existing computer programs are frequently re-released in updated versions having higher revision levels.
Performing an installation procedure to alter a computer system""s current software programs may present a system user or a system administrator with several types of challenges. For example, in user applications that process time-sensitive or highly critical information, successfully and effectively performing a software installation procedure may be a significant event with little or no margin for error. Failure to successfully complete a software installation may cause a costly loss of computing time. Alternately, an ineffective software installation may potentially result in irreversible corruption or destruction of important data, such as business financial records or irreplaceable accounting information.
The increasing prevalence of computer networks creates additional obstacles to successfully and efficiently installing computer software programs. For example, client-server system architectures typically include a significant number of client computer systems that each communicate bi-directionally with a central server system, such as a system database. Attempting to install programs on a large number of individual client systems significantly increases the degree of difficulty for the installation procedure, depending upon the number of individual client systems present in the client-server architecture.
Selecting an effective methodology for installing software programs in a computer network environment is also a significant consideration for system users and system administrators. Many system users may lack the requisite programming experience and system knowledge to successfully perform a software installation procedure. Alternately, performing periodic software installations or software updates on a substantial number of client systems may place an onerous burden on system administration resources, and thereby result in an inefficient use of technical personnel.
In addition, performing a software installation procedure may potentially create disadvantageous software conflicts between the newly-installed software programs and those software programs that resided on the host computer prior to the installation of the new software.
For example, in certain circumstances, installing a newer version of an older, but still necessary, software program may simply overwrite the older software program, and thereby prevent further use of the older software. In other situations, the host computer may also mistakenly identify a newly-installed software program as a previously-installed program due to similar or identical identification characteristics, such as the program name. Such software conflicts present significant obstacles to the effective and efficient performance of a software installation procedure.
Therefore, for all the foregoing reasons, implementing an effective and efficient method for installing computer programs remain a significant consideration for designers, manufacturers, and users of computer systems.
In accordance with the present invention, a system and method for using a substitute directory to automatically install an update program is disclosed. In one embodiment of the present invention, a client computer from a client-server system preferably contains several software programs including a client application, server middleware, and a browser program. The client computer preferably also communicates with a distributed network, such as the Internet, using the browser program.
In operation, a network access module from the browser program initially accesses a selected network page on the distributed network. The network access module may function in response to a network location address (or uniform resource locator) provided to the client computer by a system user. Alternately, the network access module may automatically access the network page in response to various predetermined access criteria.
A download module on the client computer then preferably performs a comparison procedure between an update program listed on the network page and a software program currently installed on the client computer. The download module determines whether a matching version of the update program currently exists on the client computer.
If a matching version of the update program currently exists on the client computer, then no installation procedure is required, and the installation procedure terminates. However, if a matching version of the update program does not exist on the client computer, then the download module responsively transfers the update program from the distributed network to the client computer. If the update program is in a compressed format, an install module then decompresses the update program to generate an update program in an uncompressed format.
The install module next reads an information file attached to the update program, and responsively updates client computer configuration files to reflect new parameters and requirements corresponding to the update program. In the preferred embodiment, the install module retrieves directory information from the information file, and advantageously creates a uniquely-named substitute directory in the computer system""s directories to avoid potential software conflicts between the update program and other software programs residing on the client computer system.
The install module then installs the downloaded update program into the newly-created substitute directory. Finally, a central processing unit in the client computer is notified by the browser program that the installation procedure has been completed, and the central processing unit responsively executes the client application for use by a system user, in accordance with the present invention. The present invention thus efficiently and effectively uses a substitute directory to automatically install an update program.